package battleenum

// @schema_go --EnumToString=true
type WeaponFlags int

const (
	// 可发起攻击
	WeaponFlags_CanInitiateAttackOrder WeaponFlags = iota

	// 连续扫描
	WeaponFlags_ContinuousScan

	// 已关闭
	WeaponFlags_Disabled

	// 显示冷却时间
	WeaponFlags_DisplayCooldown

	// 费用检查失败后，会导致攻击技能中断
	WeaponFlags_ExhaustStopAttackAbil

	// 隐藏的
	WeaponFlags_Hidden

	// 在灌木中不开火
	WeaponFlags_HoldFileInShrubs

	// 忽略威胁
	WeaponFlags_IgnoreThreat

	// 共用冷却时间
	WeaponFlags_LinkedCooldown

	// 近战
	WeaponFlags_Melee

	// 仅向攻击目标开火
	WeaponFlags_OnlyFireAtAttackOrderTarget

	// 仅在攻击状态下开火
	WeaponFlags_OnlyFireWhileInAttackOrder

	// 需要开启的攻击技能
	WeaponFlags_RequireEnabledAttackAbil

	// 攻击完成后才允许自动施法
	WeaponFlags_AutoCastAfterComplete
)

// @schema_go --EnumToString=true
// @alias 武器阶段
type W武器阶段 int

const (
	// 当目标不符合[攻击目标]的条件时，武器停止。通常为目标死亡
	W武器阶段_未知 W武器阶段 = iota
	W武器阶段_停止
	W武器阶段_准备姿态开始
	W武器阶段_准备姿态完成
	W武器阶段_开始
	W武器阶段_前摇开始
	W武器阶段_前摇完成
	W武器阶段_后摇开始
	W武器阶段_后摇完成
	W武器阶段_中断
	W武器阶段_攻击姿态结束
)

//
//type W武器分类 int
//
//const (
//	// 武器类型-近战
//	W武器分类_近战 W武器分类 = iota
//	// 武器类型-远程
//	W武器分类_远程
//)

// 武器攻击检查
type WeaponCheck int

const (
	WeaponCheck_Succeed WeaponCheck = iota
	// 武器失败-冷却中
	WeaponCheck_Cooldown
	// 武器类型-消费不足
	WeaponCheck_NoCost
	// 武器类型-范围外
	WeaponCheck_OutRange
	//
	WeaponCheck_Fail
)
